home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Gamers Delight 2
/
Gamers Delight 2.iso
/
Aminet
/
game
/
role
/
SRunMatGen.lha
/
Gfx.c
< prev
next >
Wrap
C/C++ Source or Header
|
1994-06-13
|
14KB
|
388 lines
/*********************************/
/* MatrixGenerator für ShadowRun */
/* written by Thomas Reinhardt */
/* */
/* Draw-Funktionen der Grafik */
/* Special-Amiga-Routinen */
/*********************************/
#include <time.h>
#include <math.h>
#include <string.h>
#include <exec/interrupts.h>
#include <exec/libraries.h>
#include <exec/lists.h>
#include <exec/memory.h>
#include <exec/nodes.h>
#include <exec/ports.h>
#include <exec/types.h>
#include <intuition/intuition.h>
#include <libraries/dos.h>
#include <libraries/dosextens.h>
#include <proto/dos.h>
#include <proto/exec.h>
#include <proto/graphics.h>
#include <proto/intuition.h>
#include <proto/gadtools.h>
#include <proto/diskfont.h>
#include <stdio.h>
#include <stdlib.h>
#include "MatrixGen.h"
#include "all.h"
extern LONG SaveNamePointer;
extern struct IntuitionBase *IntuitionBase;
extern struct GfxBase *GfxBase;
extern struct Library *DosBase;
extern struct NewScreen MyNewScreen;
extern struct Screen *MyScreen;
extern struct BitMapHeader BMHD;
extern struct ColorRegister Colors[16];
extern struct CommodoreAmiga CAMG;
extern LONG Len,xi,yi,b;
extern ULONG ChunkLen;
extern char *WohinDamit;
extern char GfxName[255];
extern char StatusName[255];
extern char StandardName[255];
extern char DatenFeld[255];
extern BOOL success,AllDone;
extern int i;
extern char inread[5];
extern int cBitmaps,AnzahlKnoten,AusgangsKnoten,AnzahlWichtigeDaten,Stufenwert;
extern int MaxSAN;
extern UBYTE xPos,yPos,MaxFarben,Language,OutputType;
extern struct MatrixKomponenten Matrix[12*12];
extern struct MatrixGenType MatrixDatas[1];
extern BOOL CPUInSystem,Beenden,RandomDSValue;
extern BOOL Zufallsstufen,KeineDatenspeicher,StatusFile,PrefsFile,BlaueKnoten;
extern BOOL Schatten,SaveDatenfeld,InstallNoIC,AlwaysICInfo;
extern UBYTE AnzahlCPU,AnzahlSPU,AnzahlDS,AnzahlSAN,AnzahlSN,AnzahlIOP,AnzahlBlueNodes;
void DrawCPU(ULONG xx,ULONG yy,UBYTE farbe){
SetAPen(&MyScreen->RastPort,farbe);
Move(&MyScreen->RastPort,xx,yy);
Draw(&MyScreen->RastPort,xx+5,yy-10);
Draw(&MyScreen->RastPort,xx+25,yy-10);
Draw(&MyScreen->RastPort,xx+30,yy);
Draw(&MyScreen->RastPort,xx+25,yy+10);
Draw(&MyScreen->RastPort,xx+5,yy+10);
Draw(&MyScreen->RastPort,xx,yy);
Move(&MyScreen->RastPort,xx+2,yy);
Draw(&MyScreen->RastPort,xx+6,yy-8);
Draw(&MyScreen->RastPort,xx+24,yy-8);
Draw(&MyScreen->RastPort,xx+28,yy);
Draw(&MyScreen->RastPort,xx+24,yy+8);
Draw(&MyScreen->RastPort,xx+6,yy+8);
Draw(&MyScreen->RastPort,xx+2,yy);
if(Schatten==TRUE){
SetAPen(&MyScreen->RastPort,15);
Move(&MyScreen->RastPort,xx+11,yy+13);
Draw(&MyScreen->RastPort,xx+29,yy+13);
Move(&MyScreen->RastPort,xx+10,yy+12);
Draw(&MyScreen->RastPort,xx+30,yy+12);
Move(&MyScreen->RastPort,xx+9,yy+11);
Draw(&MyScreen->RastPort,xx+30,yy+11);
Move(&MyScreen->RastPort,xx+26,yy+10);
Draw(&MyScreen->RastPort,xx+31,yy+10);
Move(&MyScreen->RastPort,xx+26,yy+9);
Draw(&MyScreen->RastPort,xx+31,yy+9);
Move(&MyScreen->RastPort,xx+27,yy+8);
Draw(&MyScreen->RastPort,xx+32,yy+8);
Move(&MyScreen->RastPort,xx+27,yy+7);
Draw(&MyScreen->RastPort,xx+32,yy+7);
Move(&MyScreen->RastPort,xx+28,yy+6);
Draw(&MyScreen->RastPort,xx+33,yy+6);
Move(&MyScreen->RastPort,xx+28,yy+5);
Draw(&MyScreen->RastPort,xx+33,yy+5);
Move(&MyScreen->RastPort,xx+29,yy+4);
Draw(&MyScreen->RastPort,xx+34,yy+4);
Move(&MyScreen->RastPort,xx+29,yy+3);
Draw(&MyScreen->RastPort,xx+34,yy+3);
Move(&MyScreen->RastPort,xx+30,yy+2);
Draw(&MyScreen->RastPort,xx+33,yy+2);
Move(&MyScreen->RastPort,xx+30,yy+1);
Draw(&MyScreen->RastPort,xx+33,yy+1);
Move(&MyScreen->RastPort,xx+31,yy);
Draw(&MyScreen->RastPort,xx+32,yy);
Move(&MyScreen->RastPort,xx+31,yy-1);
Draw(&MyScreen->RastPort,xx+32,yy-1);
Move(&MyScreen->RastPort,xx+30,yy-2);
Draw(&MyScreen->RastPort,xx+31,yy-2);
Move(&MyScreen->RastPort,xx+30,yy-3);
Draw(&MyScreen->RastPort,xx+31,yy-3);
Move(&MyScreen->RastPort,xx+29,yy-4);
Draw(&MyScreen->RastPort,xx+30,yy-4);
Move(&MyScreen->RastPort,xx+29,yy-5);
Draw(&MyScreen->RastPort,xx+30,yy-5);
Move(&MyScreen->RastPort,xx+28,yy-6);
Draw(&MyScreen->RastPort,xx+29,yy-6);
Move(&MyScreen->RastPort,xx+28,yy-7);
Draw(&MyScreen->RastPort,xx+29,yy-7);
}
}
void DrawSPU(ULONG xx,ULONG yy,UBYTE farbe){
SetAPen(&MyScreen->RastPort,farbe);
Move(&MyScreen->RastPort,xx,yy);
Draw(&MyScreen->RastPort,xx+5,yy-10);
Draw(&MyScreen->RastPort,xx+25,yy-10);
Draw(&MyScreen->RastPort,xx+30,yy);
Draw(&MyScreen->RastPort,xx+25,yy+10);
Draw(&MyScreen->RastPort,xx+5,yy+10);
Draw(&MyScreen->RastPort,xx,yy);
if(Schatten==TRUE){
SetAPen(&MyScreen->RastPort,15);
Move(&MyScreen->RastPort,xx+11,yy+13);
Draw(&MyScreen->RastPort,xx+29,yy+13);
Move(&MyScreen->RastPort,xx+10,yy+12);
Draw(&MyScreen->RastPort,xx+30,yy+12);
Move(&MyScreen->RastPort,xx+9,yy+11);
Draw(&MyScreen->RastPort,xx+30,yy+11);
Move(&MyScreen->RastPort,xx+26,yy+10);
Draw(&MyScreen->RastPort,xx+31,yy+10);
Move(&MyScreen->RastPort,xx+26,yy+9);
Draw(&MyScreen->RastPort,xx+31,yy+9);
Move(&MyScreen->RastPort,xx+27,yy+8);
Draw(&MyScreen->RastPort,xx+32,yy+8);
Move(&MyScreen->RastPort,xx+27,yy+7);
Draw(&MyScreen->RastPort,xx+32,yy+7);
Move(&MyScreen->RastPort,xx+28,yy+6);
Draw(&MyScreen->RastPort,xx+33,yy+6);
Move(&MyScreen->RastPort,xx+28,yy+5);
Draw(&MyScreen->RastPort,xx+33,yy+5);
Move(&MyScreen->RastPort,xx+29,yy+4);
Draw(&MyScreen->RastPort,xx+34,yy+4);
Move(&MyScreen->RastPort,xx+29,yy+3);
Draw(&MyScreen->RastPort,xx+34,yy+3);
Move(&MyScreen->RastPort,xx+30,yy+2);
Draw(&MyScreen->RastPort,xx+33,yy+2);
Move(&MyScreen->RastPort,xx+30,yy+1);
Draw(&MyScreen->RastPort,xx+33,yy+1);
Move(&MyScreen->RastPort,xx+31,yy);
Draw(&MyScreen->RastPort,xx+32,yy);
Move(&MyScreen->RastPort,xx+31,yy-1);
Draw(&MyScreen->RastPort,xx+32,yy-1);
Move(&MyScreen->RastPort,xx+30,yy-2);
Draw(&MyScreen->RastPort,xx+31,yy-2);
Move(&MyScreen->RastPort,xx+30,yy-3);
Draw(&MyScreen->RastPort,xx+31,yy-3);
Move(&MyScreen->RastPort,xx+29,yy-4);
Draw(&MyScreen->RastPort,xx+30,yy-4);
Move(&MyScreen->RastPort,xx+29,yy-5);
Draw(&MyScreen->RastPort,xx+30,yy-5);
Move(&MyScreen->RastPort,xx+28,yy-6);
Draw(&MyScreen->RastPort,xx+29,yy-6);
Move(&MyScreen->RastPort,xx+28,yy-7);
Draw(&MyScreen->RastPort,xx+29,yy-7);
}
}
void DrawSN(ULONG xx,ULONG yy,UBYTE farbe){
SetAPen(&MyScreen->RastPort,farbe);
Move(&MyScreen->RastPort,xx,yy);
DrawEllipse(&MyScreen->RastPort,xx+15,yy,10,10);
if(Schatten==TRUE){
SetAPen(&MyScreen->RastPort,15);
Move(&MyScreen->RastPort,xx+19,yy+13);
Draw(&MyScreen->RastPort,xx+25,yy+13);
Move(&MyScreen->RastPort,xx+17,yy+12);
Draw(&MyScreen->RastPort,xx+27,yy+12);
Move(&MyScreen->RastPort,xx+16,yy+11);
Draw(&MyScreen->RastPort,xx+28,yy+11);
Move(&MyScreen->RastPort,xx+19,yy+10);
Draw(&MyScreen->RastPort,xx+29,yy+10);
Move(&MyScreen->RastPort,xx+21,yy+9);
Draw(&MyScreen->RastPort,xx+30,yy+9);
Move(&MyScreen->RastPort,xx+22,yy+8);
Draw(&MyScreen->RastPort,xx+31,yy+8);
Move(&MyScreen->RastPort,xx+23,yy+7);
Draw(&MyScreen->RastPort,xx+31,yy+7);
Move(&MyScreen->RastPort,xx+24,yy+6);
Draw(&MyScreen->RastPort,xx+32,yy+6);
Move(&MyScreen->RastPort,xx+25,yy+5);
Draw(&MyScreen->RastPort,xx+32,yy+5);
Move(&MyScreen->RastPort,xx+25,yy+4);
Draw(&MyScreen->RastPort,xx+32,yy+4);
Move(&MyScreen->RastPort,xx+26,yy+3);
Draw(&MyScreen->RastPort,xx+32,yy+3);
Move(&MyScreen->RastPort,xx+26,yy+2);
Draw(&MyScreen->RastPort,xx+32,yy+2);
Move(&MyScreen->RastPort,xx+26,yy+1);
Draw(&MyScreen->RastPort,xx+32,yy+1);
Move(&MyScreen->RastPort,xx+26,yy);
Draw(&MyScreen->RastPort,xx+32,yy);
Move(&MyScreen->RastPort,xx+26,yy-1);
Draw(&MyScreen->RastPort,xx+31,yy-1);
Move(&MyScreen->RastPort,xx+26,yy-2);
Draw(&MyScreen->RastPort,xx+31,yy-2);
Move(&MyScreen->RastPort,xx+26,yy-3);
Draw(&MyScreen->RastPort,xx+30,yy-3);
Move(&MyScreen->RastPort,xx+25,yy-4);
Draw(&MyScreen->RastPort,xx+29,yy-4);
Move(&MyScreen->RastPort,xx+25,yy-5);
Draw(&MyScreen->RastPort,xx+28,yy-5);
Move(&MyScreen->RastPort,xx+24,yy-6);
Draw(&MyScreen->RastPort,xx+26,yy-6);
}
}
void DrawSAN(ULONG xx,ULONG yy,UBYTE farbe){
SetAPen(&MyScreen->RastPort,farbe);
Move(&MyScreen->RastPort,xx,yy-5);
Draw(&MyScreen->RastPort,xx+30,yy-5);
Draw(&MyScreen->RastPort,xx+30,yy+5);
Draw(&MyScreen->RastPort,xx,yy+5);
Draw(&MyScreen->RastPort,xx,yy-5);
if(Schatten==TRUE){
SetAPen(&MyScreen->RastPort,15);
Move(&MyScreen->RastPort,xx+4,yy+8);
Draw(&MyScreen->RastPort,xx+33,yy+8);
Move(&MyScreen->RastPort,xx+4,yy+7);
Draw(&MyScreen->RastPort,xx+33,yy+7);
Move(&MyScreen->RastPort,xx+4,yy+6);
Draw(&MyScreen->RastPort,xx+33,yy+6);
Move(&MyScreen->RastPort,xx+31,yy+5);
Draw(&MyScreen->RastPort,xx+33,yy+5);
Move(&MyScreen->RastPort,xx+31,yy+4);
Draw(&MyScreen->RastPort,xx+33,yy+4);
Move(&MyScreen->RastPort,xx+31,yy+3);
Draw(&MyScreen->RastPort,xx+33,yy+3);
Move(&MyScreen->RastPort,xx+31,yy+2);
Draw(&MyScreen->RastPort,xx+33,yy+2);
Move(&MyScreen->RastPort,xx+31,yy+1);
Draw(&MyScreen->RastPort,xx+33,yy+1);
Move(&MyScreen->RastPort,xx+31,yy);
Draw(&MyScreen->RastPort,xx+33,yy);
Move(&MyScreen->RastPort,xx+31,yy-1);
Draw(&MyScreen->RastPort,xx+33,yy-1);
Move(&MyScreen->RastPort,xx+31,yy-2);
Draw(&MyScreen->RastPort,xx+33,yy-2);
}
}
void DrawIOP(ULONG xx,ULONG yy,UBYTE farbe){
SetAPen(&MyScreen->RastPort,farbe);
Move(&MyScreen->RastPort,xx,yy+10);
Draw(&MyScreen->RastPort,xx+15,yy-10);
Draw(&MyScreen->RastPort,xx+30,yy+10);
Draw(&MyScreen->RastPort,xx,yy+10);
if(Schatten==TRUE){
SetAPen(&MyScreen->RastPort,15);
Move(&MyScreen->RastPort,xx+4,yy+13);
Draw(&MyScreen->RastPort,xx+34,yy+13);
Move(&MyScreen->RastPort,xx+5,yy+12);
Draw(&MyScreen->RastPort,xx+33,yy+12);
Move(&MyScreen->RastPort,xx+6,yy+11);
Draw(&MyScreen->RastPort,xx+33,yy+11);
Move(&MyScreen->RastPort,xx+31,yy+10);
Draw(&MyScreen->RastPort,xx+32,yy+10);
Move(&MyScreen->RastPort,xx+30,yy+9);
Draw(&MyScreen->RastPort,xx+31,yy+9);
Move(&MyScreen->RastPort,xx+30,yy+8);
Draw(&MyScreen->RastPort,xx+31,yy+8);
Move(&MyScreen->RastPort,xx+29,yy+7);
Draw(&MyScreen->RastPort,xx+30,yy+7);
Move(&MyScreen->RastPort,xx+28,yy+6);
Draw(&MyScreen->RastPort,xx+29,yy+6);
Move(&MyScreen->RastPort,xx+27,yy+5);
Draw(&MyScreen->RastPort,xx+28,yy+5);
Move(&MyScreen->RastPort,xx+27,yy+4);
Draw(&MyScreen->RastPort,xx+28,yy+4);
Move(&MyScreen->RastPort,xx+26,yy+3);
Draw(&MyScreen->RastPort,xx+27,yy+3);
Move(&MyScreen->RastPort,xx+25,yy+2);
Draw(&MyScreen->RastPort,xx+26,yy+2);
Move(&MyScreen->RastPort,xx+24,yy+1);
Draw(&MyScreen->RastPort,xx+25,yy+1);
Move(&MyScreen->RastPort,xx+24,yy);
Draw(&MyScreen->RastPort,xx+25,yy);
Move(&MyScreen->RastPort,xx+23,yy-1);
Draw(&MyScreen->RastPort,xx+24,yy-1);
Move(&MyScreen->RastPort,xx+22,yy-2);
Draw(&MyScreen->RastPort,xx+23,yy-2);
Move(&MyScreen->RastPort,xx+21,yy-3);
Draw(&MyScreen->RastPort,xx+22,yy-3);
Move(&MyScreen->RastPort,xx+21,yy-4);
Draw(&MyScreen->RastPort,xx+22,yy-4);
Move(&MyScreen->RastPort,xx+20,yy-5);
Draw(&MyScreen->RastPort,xx+21,yy-5);
Move(&MyScreen->RastPort,xx+20,yy-6);
Draw(&MyScreen->RastPort,xx+20,yy-6);
}
}
void DrawDS(ULONG xx,ULONG yy,UBYTE farbe){
SetAPen(&MyScreen->RastPort,farbe);
Move(&MyScreen->RastPort,xx+5,yy-10);
Draw(&MyScreen->RastPort,xx+25,yy-10);
Draw(&MyScreen->RastPort,xx+25,yy+10);
Draw(&MyScreen->RastPort,xx+5,yy+10);
Draw(&MyScreen->RastPort,xx+5,yy-10);
if(Schatten==TRUE){
SetAPen(&MyScreen->RastPort,15);
Move(&MyScreen->RastPort,xx+8,yy+13);
Draw(&MyScreen->RastPort,xx+28,yy+13);
Move(&MyScreen->RastPort,xx+8,yy+12);
Draw(&MyScreen->RastPort,xx+28,yy+12);
Move(&MyScreen->RastPort,xx+8,yy+11);
Draw(&MyScreen->RastPort,xx+28,yy+11);
Move(&MyScreen->RastPort,xx+26,yy+10);
Draw(&MyScreen->RastPort,xx+28,yy+10);
Move(&MyScreen->RastPort,xx+26,yy+9);
Draw(&MyScreen->RastPort,xx+28,yy+9);
Move(&MyScreen->RastPort,xx+26,yy+8);
Draw(&MyScreen->RastPort,xx+28,yy+8);
Move(&MyScreen->RastPort,xx+26,yy+7);
Draw(&MyScreen->RastPort,xx+28,yy+7);
Move(&MyScreen->RastPort,xx+26,yy+6);
Draw(&MyScreen->RastPort,xx+28,yy+6);
Move(&MyScreen->RastPort,xx+26,yy+5);
Draw(&MyScreen->RastPort,xx+28,yy+5);
Move(&MyScreen->RastPort,xx+26,yy+4);
Draw(&MyScreen->RastPort,xx+28,yy+4);
Move(&MyScreen->RastPort,xx+26,yy+3);
Draw(&MyScreen->RastPort,xx+28,yy+3);
Move(&MyScreen->RastPort,xx+26,yy+2);
Draw(&MyScreen->RastPort,xx+28,yy+2);
Move(&MyScreen->RastPort,xx+26,yy+1);
Draw(&MyScreen->RastPort,xx+28,yy+1);
Move(&MyScreen->RastPort,xx+26,yy);
Draw(&MyScreen->RastPort,xx+28,yy);
Move(&MyScreen->RastPort,xx+26,yy-1);
Draw(&MyScreen->RastPort,xx+28,yy-1);
Move(&MyScreen->RastPort,xx+26,yy-2);
Draw(&MyScreen->RastPort,xx+28,yy-2);
Move(&MyScreen->RastPort,xx+26,yy-3);
Draw(&MyScreen->RastPort,xx+28,yy-3);
Move(&MyScreen->RastPort,xx+26,yy-4);
Draw(&MyScreen->RastPort,xx+28,yy-4);
Move(&MyScreen->RastPort,xx+26,yy-5);
Draw(&MyScreen->RastPort,xx+28,yy-5);
Move(&MyScreen->RastPort,xx+26,yy-6);
Draw(&MyScreen->RastPort,xx+28,yy-6);
Move(&MyScreen->RastPort,xx+26,yy-7);
Draw(&MyScreen->RastPort,xx+28,yy-7);
}
}
void DrawLinie(ULONG xStart,ULONG yStart,ULONG xEnd,ULONG yEnd){
SetAPen(&MyScreen->RastPort,1);
Move(&MyScreen->RastPort,xStart+15,yStart);
Draw(&MyScreen->RastPort,xEnd+15,yEnd);
}
void DrawIC(ULONG xx,ULONG yy){
SetAPen(&MyScreen->RastPort,1);
Move(&MyScreen->RastPort,xx-1,yy-2);
Draw(&MyScreen->RastPort,xx-1,yy-3);
Move(&MyScreen->RastPort,xx+1,yy-2);
Draw(&MyScreen->RastPort,xx+1,yy-3);
Move(&MyScreen->RastPort,xx,yy-4);
Draw(&MyScreen->RastPort,xx,yy-6);
Move(&MyScreen->RastPort,xx-2,yy-4);
Draw(&MyScreen->RastPort,xx-1,yy-5);
Move(&MyScreen->RastPort,xx+2,yy-4);
Draw(&MyScreen->RastPort,xx+1,yy-5);
}